<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html>
<head>
<title>Advanced wxPython e-book</title>
<link rel="stylesheet" href="/cfg/format.css" type="text/css">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="keywords" content="wxPython, e-book, tutorial, Linux, Windows, programming, GUI">
<meta name="description" content="This is Advanced wxPython e-book">
<meta name="language" content="en">
<meta name="author" content="Jan Bodnar">
<meta name="distribution" content="global">
</head>

<body>


<div class="content">

<a href="/" title="Home">Home</a>


<h1>Advanced wxPython tutorial</h1>


<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="A6H8JZFTMBMFG">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>



<p>
The e-book has <b>353</b> pages. It has <b>92</b> 
code examples. Many of the examples are unique; a reader
will not find them anywhere else. It is an ideal material 
for those who already know some basics of wxPython library. 
Carefully chosen examples always focus on one important
aspect. (Unless it is a more complex example.)  Buying this e-book
you will save a lot of hours searching on the Internet, asking on 
forums and figuring things on your own. What took the author 
months and weeks to find out, you will get in days and hours.
The e-book is written in plain English.
</p>

<p>
The code examples were tested on Linux and Windows. 
Python 2.7 and wxPython 2.9.3 on Windows XP. Python 2.7.3 and 
wxPython 2.9.4 on Windows 7. Python 2.7.2 and wxPython 2.9.3.1 on 
Linux. After purchasing the e-book, you will obtain a zip file. 
With the pdf file, you will also obtain all code examples. 
</p>

<p>
If something goes wrong with the payment process, drop me 
an email at vronskij(at)gmail.com.
</p>

<h2>Price</h2>

<p>
The e-book costs <b>15 €</b>. 
</p>


<h2>About this tutorial</h2>

<p>
This is Advanced wxPython e-book. This e-book is a tutorial,
which covers several interesting parts of the library.
</p>

<p>
This e-book covers the following:
</p>

<ul>
  <li>Cairo graphics library</li>
  <li>Layout management</li>
  <li>Images</li>
  <li>Custom widgets</li>
  <li>Advanced widgets</li>
  <li>Nibbles</li>
  <li>Sokoban</li>
  <li>Minesweeper</li>
</ul>


<p>
The first chapter presents 18 examples for <b>Cairo</b> graphics library.
We will work with colours, shapes, gradients. Reflection, star animation, 
aliens example are among other code examples.
</p>

<p>
Layout management is considered to be one of the most difficult areas of GUI
programming. Writers usually only skim the topic, covering the very basics of
it. Based on my experience while writing a complete e-book dedicated to 
layout management, this chapter was a piece of cake. Once you know the principles
behind the process, you can utilize them in other GUI toolkits too.
Almost 40 pages and 20 examples, you will learn everything important 
about layout management. 
</p>

<p>
The third chapter is dedicated to images. In this chapter, we will show how to
scale or crop the image. We will create a grayscale image, a watermark or a an 
application which takes a screenshot.
</p>

<p>
In the fourth chapter, we will show, how to create three custom widgets. 
A ProgressMeter widget, a Thermometer widget and a ColourWheel widget. 
</p>

<p>
The fifth chapter covers the advanced widgets. We will have plenty of examples 
covering the wx.TextCtrl, wx.ListCtrl, wx.TreeCtrl, wx.Grid and 
the wx.richtext.RichText.
</p>


<p>
One of the best ways to learn programming is to create computer games. As a bonus,
you will have three simple 2D games. Nibbles, Sokoban and Minesweeper.
</p>


<h2>Screenshots</h2>

<p>
Here you can see some of the screenshots from the e-book.
</p>


<img src="/img/ebk/wxpython/imagesrv.png" alt="Images in list control">
<img src="/img/ebk/wxpython/minesweeper.png" alt="Minesweeper">
<img src="/img/ebk/wxpython/aliens.png" alt="Aliens">
<img src="/img/ebk/wxpython/thermometer.png" alt="Thermometer">
<br>
<br>
<img src="/img/ebk/wxpython/sortingtc.png" alt="Sorting tree control">
<img src="/img/ebk/wxpython/traversing.png" alt="Traversing tree control">

<br>
<img src="/img/ebk/wxpython/windows.png" alt="Windows">
<img src="/img/ebk/wxpython/reflection.jpg" alt="Reflection">

<br>
<img src="/img/ebk/wxpython/grayscale.png" alt="Grayscale">
<!--<img src="/img/ebk/wxpython/watermark.jpg" alt="Watermark">-->

<br>
<br>

<div class="botNav, center">
<span class="botNavItem"><a href="/">Home</a></span> ‡ <span class="botNavItem"><a href="#">Top of Page</a></span>
</div>


<div class="footer">
<div class="signature">
<a href="/">ZetCode</a> last modified August 8, 2012  <span class="copyright">&copy; 2007 - 2013 Jan Bodnar</span>
</div>
</div>

</div>

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-5536206-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

</body>
</html>
